package com.bw.controller;

import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.bw.service.GmallService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
import java.util.Map;

@RestController
public class GmallController {
    //注入业务层
    @Autowired
    GmallService gmallService;

    //总成交的 数字翻牌器展示
    @RequestMapping("/findTotal")
    public Object findTotal(@RequestParam("nowDate") String nowDate){
        //1.拿到数据库的数据
        List<Map> list = gmallService.findTotal(nowDate);
        //2.返回大屏所需要的数据
        //2.1 实例化json数据
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("status",0);
        jsonObject.put("msg","");
        jsonObject.put("data",list.get(0).get("list"));
        return jsonObject;
    }

    @RequestMapping("/findPro")
    public Object findPro(@RequestParam("nowDate")String nowDate){
        //        1.拿到数据库的数据 [{}]
        List<Map> list = gmallService.findPro(nowDate);
        //        2.返回大屏所需要的数据   {{[{},{},{},{}...]}}
//        2.1 实例化JSON
        JSONObject jsonObject = new JSONObject();
//        2.2  jsonObject放三个值
        jsonObject.put("status",0);
        jsonObject.put("msg","");
//        2.3 给data放dataObject值
        JSONObject dataObject = new JSONObject();
//        2.4  dataObject 放mapData 数组
//         实例化 json数组
        JSONArray mapArray = new JSONArray();
//        2.5 mapData 数组 遍历多个集合
//        数据库 [{},{},{}]-->遍历 {}，{}，{}  ===map
        for (Map map : list) {
//            循环创建mapObject 对象
            JSONObject mapObject = new JSONObject();
//            循环创建mapObject 对象 放 name,value值 来自数据库中
            mapObject.put("name",map.get("name"));
            mapObject.put("value",map.get("total"));
//            一定要把循环得到mapObject 对象 放入到mapArray 数组中
            mapArray.add(mapObject);
        }

        dataObject.put("mapData",mapArray);
        jsonObject.put("data",dataObject);
        return jsonObject;
    }

    @RequestMapping("/findCato")
    public Object findCato(@RequestParam("nowDate")String nowDate) {
//        1.拿到数据库中的数据
        List<Map> list = gmallService.findCato(nowDate);
//        2.返回大屏所需要的数据
//        2.1 需要实例化 jsonObject
        JSONObject jsonObject = new JSONObject();
//        2.2  往jsonObject 放入三个值
        jsonObject.put("status",0);
        jsonObject.put("msg","");
//        2.3 实例化 dataArray 数组
        JSONArray dataArray = new JSONArray();
//        2.4 dataArray 数组 遍历多个dataObject
        for (Map map : list) {
//            循环创建新的dataJson对象
            JSONObject dataObject = new JSONObject();
//            往循环创建新的dataJson对象 中放入name ，Value
//            name，Value来自我们的数据库
//            list [{},{},{},....]--遍历 {}，{}，{}...

            dataObject.put("name",map.get("name"));
            dataObject.put("value",map.get("zb"));
//            把循环创建新的dataJson对象 放入 dataArray 数组
            dataArray.add(dataObject);
        }
        jsonObject.put("data",dataArray);
        return jsonObject;
    }
}
